package org.fujay.commons.langchain4j.rag.augmentor;

import dev.langchain4j.rag.query.Query;
import dev.langchain4j.rag.query.transformer.QueryTransformer;

import java.util.Collection;

/**
 * 增强查询转换器接口
 * 负责将原始查询转换为一个或多个优化后的查询
 * 扩展了langchain4j标准QueryTransformer接口
 */
public interface EnhancedQueryTransformer extends QueryTransformer {

    /**
     * 转换查询
     * 实现langchain4j标准QueryTransformer接口的transform方法
     *
     * @param query 原始查询
     * @return 转换后的查询集合
     */
    @Override
    Collection<Query> transform(Query query);

    /**
     * 转换文本查询
     *
     * @param query 查询文本
     * @return 转换后的查询文本
     */
    default String transform(String query) {
        // 默认实现：不进行转换，直接返回原始查询
        return query;
    }

    /**
     * 检查转换器是否已准备好
     *
     * @return 如果转换器已准备好，返回true；否则返回false
     */
    default boolean isReady() {
        // 默认实现认为转换器已准备好
        return true;
    }

    /**
     * 设置系统提示词
     *
     * @param systemPrompt 系统提示词
     */
    default void setSystemPrompt(String systemPrompt) {
        // 默认实现，子类可以覆盖
    }
}